home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgramD2.iso
/
Borland
/
Borland C++ For TASM
/
README.TXT
< prev
next >
Wrap
Text File
|
1996-01-10
|
13KB
|
396 lines
************************************************
* Welcome to the Scorpion Field Test *
************************************************
-----------------
TABLE OF CONTENTS
-----------------
1. Installation
Installing this field test on your hard disk
Configuring this field test with Polaris or Vulcan
Configuring Earlier Language products and this field test
Changes to SYSTEM.INI file
Configuring the Windows NT command prompt
2. Features
3. Important Information
Stepping into Delphi's Dynamic Methods
The Turbo Debugger User's Guides
WREMOTE and Delphi Exception handling
Video Conflicts
Memory Requirements
Object file format
Make
Out of Memory and MAKESWAP
Creating 16-bit import libraries from .DEF files
Make under Windows NT
New Tools
Turbo Debugger for Windows
4. Enhanced MASM Compatibility
5. Known problems
---------------
1. INSTALLATION
---------------
Installing this field test on your hard disk:
-----------------------------------------------------
1. Put the install disk in a 3.5" floppy drive.
2. Change to that drive and type
INSTALL <enter>
3. Fill in directories as appropriate, and INSTALL will create
appropriate Windows groups, and add the appropriate files to
the directories you selected.
Notes on using Scorpion with previous versions of Borland Tools
---------------------------------------------------------------
This product is designed to be used as a standalone product or in
conjunction with Polaris or Vulcan. It can also be used with
Borland/Turbo C++ 4.x, Borland Pascal 7 or Delphi 1.0. If you are using
Scorpion in conjunction with any of these shipping compiler products, they
should be installed such that shared components are drawn from Scorpion.
(i.e.: \tasm5\bin comes before \bc45\bin in your path.)
If you already have Vulcan, Polaris, Delphi, Borland C++ 4.x, or Turbo C++
4.5 on your hard disk, then it is also safe to install Scorpion into the
existing product directory.
If you are installing Delphi, or Borland C++ 4.x AFTER this field test has
been installed, you will have to manually change the system
settings that allow these products to coexist:
In your system.ini file, check your [386Enh] section for multiple entries
for the device TDDEBUG.386. Remove duplicate entries of TDDEBUG.386 so
that only the version from this product is loaded. On disk, you may also
want to rename or remove the BP7 or BC4.x versions of TDDEBUG.386 and
TDWINTH.DLL to avoid their accidental loading. You must restart Windows
after making changes to system.ini.
Different versions of TDW may not be run simultaneously.
Make sure that old copies of TDW.INI are removed from your system.
(Running the utility TDWINI.EXE will make sure that this takes place.)
Changes to SYSTEM.INI file
--------------------------
The install program makes these changes to the SYSTEM.INI file:
1) Adds "device=c:\tasm\bin\windpmi.386" to support our 32-bit tools.
2) Adds "device=c:\tasm\bin\tddebug.386" to support our debugger.
Configuring the Windows NT command prompt
-----------------------------------------
To run 16-bit protected-mode programs (tlink) under an NT command prompt
you need to add the following line to CONFIG.NT:
ntcmdprompt
Under the default NT command-line prompt, DOS COMMAND.COM is run after
returning from a TSR (such as RTM.EXE which bcc and tlink load). Adding the
above line will cause the original NT CMD.EXE to be run.
-----------
2. FEATURES
-----------
- Enhanced MASM compatibility (see item #4)
- Dual monitor support under Win95 (tdw -do, td32 -vd)
- Support for new language constructs (bool, namespaces, etc.)
- Thunk Compiler compatibility
------------------------
3. IMPORTANT INFORMATION
------------------------
Stepping into Delphi's Dynamic Methods
--------------------------------------
By default, single-stepping through a program skips over
dynamic methods and does not step into them. That's
because TDW normally determines all the single-step stop
points when the program is first loaded, at which time
dynamic methods are not yet defined.
By following these steps, however, you can change the way
TDW determines stop points and make it possible to step
into dynamic methods.
1) Choose View|Execution History.
2) Invoke the Execution History SpeedMenu, either by
clicking the right mouse button or by pressing Alt+F10.
3) Toggle the "Full history" option from No to Yes.
Now you can step into dynamic methods.
WREMOTE and Delphi Exception handling
-------------------------------------
Exception handling in a Delphi application is not visible
from WREMOTE. To debug exception handling code, use TDW
locally.
Video Conflicts
---------------
There are known conflicts between TDW's SVGA video DLL and
some video drivers. To solve the problem, reconfigure TDW
to use TDWGUI.DLL or Windows to use a standard VGA or SVGA
driver.
Object File Format
------------------
This product is designed to use and generate only object files which adhere
to the Intel OMF (Object Module Format) specification. This means that TLINK32
and TLIB only accept files of this format, and all provided libraries use
this format. There is no support in the linker or librarian for COFF object
modules produced by Microsoft C tools.
Out of Memory and MAKESWAP
--------------------------
If you get "Out of Memory" errors from DOS when running the command-line
tools, create a swap file with the MAKESWAP utility. (Note that this
applies to DOS only, not to DOS boxes opened under Windows.) MAKESWAP
takes the size of the file to create in KBytes, for example:
MAKESWAP 12000
will create a 12MB swap file in the current directory called EDPMI.SWP
for use by Borland command line tools. To enable the swap file, use
the DPMI32 environment variable by issuing the following command at
the DOS prompt:
set DPMI32=SWAPFILE <location of swap file>\EDPMI.SWP
Make under Windows NT
---------------------
If you encounter difficulties running MAKE under Windows
NT, try running MAKER instead.
Creating 16-bit import libraries from .DEF files
------------------------------------------------
Use the /o implib switch when creating 16-bit import libraries from .DEF files
to prevent implib from generating extensions for import entry module names.
------------------------------
4. Enhanced MASM Compatibility
------------------------------
Code that was already running under TASM, even with -umxxx or QUIRKS
should still run. TASM merely accepts the MASM way or option to specify
something and then pays little actual attention to it -- a la QUIRKS.
You can now use the following MASM features which are equivalent to IDEAL
mode features:
MASM IDEAL
---- -----
STRUCT STRUC
EXTERN EXTRN
BYTE DB
WORD DW
DWORD DD
TBYTE DT
QWORD DQ
EXTERNDEF GLOBAL
PROTO PROCDESC
Conditionals
------------
You can write C-like conditional and control statements that produce code.
Thus you may have such code as:
.while (ax > 3) && bx == 4
...
...
.endw
C-style conditional operators ( =, !=, >=, etc_) are all accepted, and the
directives that work are:
.while
.repeat
.if
.else
.endif
.endw
.until
.untilcxz
.break
.break.if
.continue
.continue.if
Some special symbols for machine flags are introduced also and may be used
in the conditional statements. They are:
carry? overflow? parity? sign? and zero?
Note that he code that is generated is "sign"- sensitive. MASM
has introduced not only BYTE and WORD as definitional directives, but has
also added SBYTE, SWORD, SDWORD (and REAL4, REAL8, and REAL10).
In general, AX and other registers are considered as unsigned, so to make
a comparison like AX >= 0 meaningful, you must write something like .WHILE
SWORD PTR AX >= 0 .ENDW
which will generate
cmp ax,0
jl past the endw line
Simply writing
.WHILE AX >= 0
will generate
cmp ax,0
jb ....
which simply will not work because that comparison will not generate a
carry bit. So be careful when using these .conditionals.
Macros
------
TEXTEQU is introduced as a new way to handle text macros.
Macro commands FOR, FORC, and REPEAT are introduced. They work just
like IRP, IRPC, and REPT.
Several directives for listing files are added:
.LISTALL, .LISTIF, .LISTMACRO, .LISTMACROALL, .NOLIST,
.NOLISTIF, .NOLISTMACRO, SUBTITLE
However, they introduce no functionality beyond commands that already
exist in TASM.
Subroutines and Calls
---------------------
PROC declarations have been extended and a PROTO directive has been added
that allow one to declare subroutines in a C- (if not C++) like fashion.
It includes stipulating calling-sequence language type, parameter-types
for stuff on the stack, and even visibility (PUBLIC, PRIVATE, etc.).
An INVOKE command has been added to generate code to call such a proc. It
includes sign-extension, etc., according to the type of parameter in the
proc prototype and the type of variable in the call.
OPTIONS
-------
The specific options detailed below have been implemented. Any other
OPTIONs will not be implemented and will be silently ignored. It is
important to note that the assembler will not generate and error or
warning for things that is has not implemented.
The syntax is: OPTION KEYWORD any particulars depending on keyword
Here is a list (and little more) of the options:
OLDSTRUCTS NOOLDSTRUCTS
; MASM forbade some things and allowed others
M510 NOM510
; be compatible with the popular masm 5.1
implies OLDSTRUCTS, OLDMACROS, EXPR16,
SETIF2:TRUE, DOTNAME, etc.
EXPR16 EXPR32
; default # bits when calculating
LJMP NOLJMP
; automatically adjust conditional jumps
PROC: PUBLIC or PRIVATE or EXPORT
; default mode that procs have at link time
PROLOGUE EPILOGUE
; into macros for PROC entry & exit
NOKEYWORD
; proviso for using old code that has
now-illegal symbols (such as OLD or EXTERN)
OLDMACROS NOOLDMACROS
; mostly a matter of punctuation change
DOTNAME NODOTNAME
; allow symbols to start with a dot
OFFSET: GROUP or SEGMENT or FLAT
; how to treat the OFFSET operator
SCOPED NOSCOPED
; whether to allow 2 subroutines to have
identical internal tags
SETIF2: TRUE or FALSE
; how & whether to handle error conditionals like
.ERR2
NOSIGNEXTEND
; code generation for some boolean operations
SEGMENT: USE16 or USE32 or FLAT
; the default segment type
CASEMAP: None or NOTPUBLIC or ALL
; control linking as to upper-lower case externals
and publics. Similar to & interacts with /MX,
/ML command line ops
EMULATOR NOEMULATOR
; how to generate floating point code
READONLY NOREADONLY
; to keep code from knowingly being able to clobber
itself
LANGUAGE: C or PASCAL or FORTRAN or BASIC or SYSCALL or STDCALL
; mainly affects treatment of entry & exit of PROCS
------------------------
5. Known Problems
------------------------
File | Attach does not work in TD32.
Inspecting methods in Delphi objects may lead to a crash.
TD32 cannot debug Win32 apps under Win32s.
Remote network debugging is not currently supported.